home *** CD-ROM | disk | FTP | other *** search
/ Danny Amor's Online Library / Danny Amor's Online Library - Volume 1.iso / html / faqs / faq / objective-c / classes < prev    next >
Encoding:
Text File  |  1995-07-25  |  37.1 KB  |  918 lines

  1. Subject: comp.lang.objective-c FAQ, part 2/3: ClassWare Listing
  2. Newsgroups: comp.lang.objective-c,comp.answers,news.answers
  3. From: tiggr@es.ele.tue.nl (Tiggr)
  4. Date: 17 Nov 1994 17:00:06 GMT
  5.  
  6. Archive-name: Objective-C/classes
  7. Version: $Id: classes,v 2.15 1994/11/06 10:59:54 tiggr Exp $
  8.  
  9.  
  10.  
  11.                 Objective-C
  12.  
  13.                  ClassWare Listing
  14.  
  15.  
  16.  
  17. This is the second of three FAQ postings for comp.lang.objective-c.  This
  18. posting lists available kits and classes, to aid the reader in answering the
  19. question `to re-use or to re-invent?'.  In order to keep this list up to date
  20. and as interesting and diverse as possible, send your additions, deletions
  21. and suggestions to tiggr@es.ele.tue.nl.
  22.  
  23. The available classes and kits are categorized as follows:
  24.  
  25.     Stepstone    Stepstone libraries,
  26.             for use with Stepstone's environment
  27.     NeXT        NeXT kits, for use with NEXTSTEP
  28.     FSF        FSF maintained/released classes
  29.             for use with GNU CC
  30.     Third Party    commercial classes
  31.     GPL        classes released under the GPL
  32.     Public Domain    public domain classes---no GPL
  33.  
  34.  
  35. Stepstone
  36.  
  37.     Bundled with the compiler is ICpak 101 Foundation Class Library.  This
  38.     library provides twenty classes and more than three hundred methods
  39.     including such things as Collections (OrdCltn, Stack, Set, Dictionary,
  40.     SortCltn), Arrays (IdArray, IntArray), String, Sequences, Automatic
  41.     Object I/O (ASCII Filer), etc.
  42.  
  43.     The ICpak 201 Graphical User Interface library is used to build iconic
  44.     multi window user interfaces for workstation applications.  The library
  45.     consists of 58 classes and over 1,100 methods.  Classes include such
  46.     things as Controllers, Menu's, Menu Items, Icons, Windows(StdLayer),
  47.     Timers, Buttons, Text, etc, etc.  ICpak 201 is ported to X Windows,
  48.     OpenWindows, Motif and SunView and provides a consistent user interface/
  49.     look-and-feel between all platforms.
  50.  
  51.     Contact
  52.  
  53.     The Stepstone Corporation
  54.     75 Glen Road
  55.     Sandy Hook, CT 06482
  56.     tel: +1 203 426-1875
  57.     fax: +1 203 270-0106
  58.     telex: 506127
  59.  
  60. NeXT
  61.  
  62.     Common Classes
  63.  
  64.     Several classes provided with NeXTSTEP do not belong to a specific
  65.     kit: Object (core of the runtime system, root of the general class
  66.     hierarchy), Storage, List (an abstract array), HashTable (to store
  67.     (key, object) associations), StreamTable (to write data to streams)
  68.     and NXStringTable (to store (key, string) associations).
  69.  
  70.     Application Kit
  71.  
  72.     The Application Kit defines a set of Objective-C classes and
  73.     protocols, C functions, and assorted constants and data types that
  74.     are used by virtually every NeXTSTEP application.  The pith of the
  75.     Kit are the tools it provides for implementing a graphical,
  76.     event-driven user interface:
  77.  
  78.         The Application Kit provides classes---most notably Window and
  79.         View---that make drawing on the screen exquisitely succinct.
  80.         Much of the unromantic work that's involved in
  81.         drawing---communicating with hardware devices and screen
  82.         buffers, clearing areas of the screen before drawing,
  83.         coordinating overlapping drawing areas---is taken care of for
  84.         you, letting you concentrate on the much more gratifying task of
  85.         supplying code that simply draws.  And even this task is
  86.         assisted by many of the other classes and a number of C
  87.         functions that provide drawing code for you.
  88.  
  89.         The Application Kit makes event handling extremely simple.  The
  90.         Responder class, from which many of the Kit's classes inherit,
  91.         defines a mechanism by which the user's actions are passed to
  92.         the objects in your application that can best respond to them.
  93.         The Application class, which inherits from Responder,
  94.         establishes the low-level connections that makes this system
  95.         possible.  It provides methods that inform your application of
  96.         watershed events, such as when the user makes the application
  97.         active and inactive, and when the user logs out or turns off the
  98.         computer.
  99.  
  100.     By using these tools, you bless your application with a look and
  101.     feel that's similar to other applications, making it easier for the
  102.     user to recognize and use.
  103.  
  104.     (Introduction from the NeXTSTEP General Reference, "Application Kit"
  105.     reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
  106.     All rights reserved.)
  107.  
  108.     Database Kit
  109.  
  110.     The Database Kit provides a comprehensive set of tools, classes, and
  111.     protocols for building applications that use a high-level
  112.     entity-relationship model to manipulate database servers such as
  113.     those provided by Oracle or Sybase.  The kit provides services that
  114.     include:
  115.  
  116.         Communication with client-server databases.
  117.  
  118.         Modeling properties (attributes and relationships) of each
  119.         database.
  120.  
  121.         Record management and buffering.
  122.  
  123.         Data flow between record managers and the application user
  124.         interface.
  125.  
  126.         User interface objects for display and editing.
  127.  
  128.     (Introduction from the NeXTSTEP General Reference, "Database Kit"
  129.     reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
  130.     All rights reserved.)
  131.  
  132.     Distributed Objects
  133.  
  134.     The Distributed Objects system provides a relatively simple way for
  135.     applications to communicate with one another by allowing them to
  136.     share Objective-C objects, even amongst applications running on
  137.     different machines across a network.  They are useful for
  138.     implementing client-server and cooperative applications.  The
  139.     Distributed Objects system subsumes the network aspects of typical
  140.     remote procedure call (RPC) programming, and allow an application to
  141.     send messages to remote objects using ordinary Objective-C syntax.
  142.  
  143.     The Distributed Objects system takes the form of two classes,
  144.     NXConnection and NXProxy.  NXConnection objects are primarily
  145.     bookkeepers that manage resources passed between applications.
  146.     NXProxy objects are local objects that represent remote objects.
  147.     When a remote object is passed to your application, it is passed in
  148.     the form of a proxy that stands in for the remote object; messages
  149.     to the proxy are forwarded to the remote object, so for most intents
  150.     and purposes the proxy can be treated as though it were the object
  151.     itself.  Note that direct access to instance variables of the remote
  152.     object isn't available through the proxy.
  153.  
  154.     (Introduction from the NeXTSTEP General Reference, "Distributed Objects"
  155.     reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
  156.     All rights reserved.)
  157.  
  158.     Indexing Kit
  159.  
  160.     The Indexing Kit is a set of programmatic tools for managing data,
  161.     especially the large amounts of data characteristic of information
  162.     intensive applications.  Much as the Application Kit provides a
  163.     framework for a graphical interface, the Indexing Kit provides a
  164.     framework for data management.
  165.  
  166.     The Indexing Kit supplies facilities for building custom databases
  167.     and for searching the UNIX file system.  Key benefits include
  168.     guaranteed data integrity, excellent performance, thread-safe
  169.     operation, tight integration with the NeXTSTEP programming
  170.     environment, and the ability to efficiently store and retrieve
  171.     Objective-C objects and unstructured data like text, sound, and
  172.     images.
  173.  
  174.     The Indexing Kit consists of:
  175.  
  176.         A transaction-oriented foundation for storing and retrieving
  177.         persistent data, using virtual memory mapping for efficient
  178.         random access to parts of a file without reading or writing the
  179.         entire file. Transactions guarantee data integrity on persistent
  180.         storage media, and are also used to manage concurrent access to
  181.         shared data.
  182.  
  183.         Fast sequential and associative access to stored data.
  184.         Associative access is untyped, in that the programmer defines
  185.         the data types of keys and their ordering by means of a
  186.         comparison function or a format string.
  187.  
  188.         A simple data management capability based on the Objective-C
  189.         run-time system.  Records can be moved efficiently between
  190.         working memory and the storage substrate in the form of
  191.         Objective-C objects.  Multiple indexes can be built over
  192.         programmer-defined attributes, so that records can be ordered
  193.         and retrieved by the values of their indexed attributes.
  194.  
  195.         A general query processing facility, including a declarative
  196.         query language and its interpreter.  Queries can be applied to
  197.         individual objects, to collections of objects, or to the
  198.         attribute/value lists produced by Indexing Kit's customizable
  199.         text processing tools.
  200.  
  201.         High-level file system searching facilities based on the
  202.         supporting layers described above, including fast literal
  203.         searching of file contents.
  204.  
  205.     (Introduction from the NeXTSTEP General Reference, "Indexing Kit"
  206.     reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
  207.     All rights reserved.)
  208.  
  209.     Mach Kit
  210.  
  211.     The Mach Kit provides an object-oriented interface to some of the
  212.     features of the Mach operating system.  At this time, it is most
  213.     useful to applications that make use of the Distributed Objects
  214.     system, since these applications rely upon Mach's message sending
  215.     abilities to transport objects, ports, and data between processes.
  216.     The Mach Kit may also be useful for drivers and multi threaded
  217.     applications.  The Mach Kit provides several classes and protocols,
  218.     listed below.
  219.  
  220.     (Introduction from the NeXTSTEP General Reference, "Mach Kit"
  221.     reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
  222.     All rights reserved.)
  223.  
  224.     NetInfo Kit
  225.  
  226.     The NetInfo Kit is a collection of classes and a single function
  227.     used to provide a connection to and interface with NetInfo domains.
  228.     The NetInfo Kit provides classes for basic interface with a domain
  229.     as well as specialized panels.
  230.  
  231.     (Introduction from the NeXTSTEP General Reference, "NetInfo Kit"
  232.     reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
  233.     All rights reserved.)
  234.  
  235.     3D Kit
  236.  
  237.     The 3D Graphics Kit enables NeXTSTEP applications to model and
  238.     render 3-dimensional scenes.  Much as the Application Kit's 2D
  239.     graphics capabilities are based on the Display PostScript
  240.     interpreter, the 3D Kit's capabilities are based on the Interactive
  241.     RenderMan renderer.  There are both similarities and differences in
  242.     the inner workings of the two implementations.
  243.  
  244.     One similarity is that both are implemented with a client-server
  245.     model, in which client applications send drawing code to the Window
  246.     Server, which does the actual drawing.  Another similarity is that
  247.     N3DCamera---the 3D Kit's View---generates all drawing code, both 2D
  248.     and 3D, when its drawSelf: method is invoked.  This keeps the
  249.     Application Kit's display mechanism intact for both PostScript and
  250.     RenderMan drawing.
  251.  
  252.     One difference in the implementations is in the code generated for
  253.     drawing. For 2D drawing, a View sends PostScript code to the Window
  254.     Server's Display PostScript interpreter.  For 3D drawing, a View
  255.     sends RenderMan Interface Bytestream (RIB) code to the Window
  256.     Server's Interactive RenderMan renderer.
  257.  
  258.     (Introduction from the NeXTSTEP General Reference, "3D Graphics Kit"
  259.     reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
  260.     All rights reserved.)
  261.  
  262.     Sound Kit
  263.  
  264.     The Sound Kit is designed to provide both low- and high-level access
  265.     to sound hardware on workstations running NeXTSTEP, including
  266.     support for a wide variety of sound formats, real-time mixing and
  267.     compression.  The Sound Kit consists of five general categories of
  268.     objects:
  269.  
  270.         Sound Device Objects
  271.     
  272.         Sound Device objects, like NXSoundIn and NXSoundOut,
  273.         wrap the low-level hardware and sound drivers into
  274.         simple, extensible packages.
  275.  
  276.         Sound Streams
  277.  
  278.         Sound Stream objects, like NXPlayStream or NXRecordStream,
  279.         allow the sound output of many simultaneous programs to be
  280.         mixed, scaled, and processed before being sent out the Sound
  281.         objects.
  282.  
  283.         The Sound Object
  284.  
  285.         The Sound object is NeXTSTEP's fundamental sound data
  286.         storage and playback/recording facility.
  287.  
  288.         The SoundView Object
  289.  
  290.         NeXTSTEP's Sound View is a graphical display of sound data
  291.         that interacts well with the NeXTSTEP GUI.
  292.  
  293.         The Sound Meter Object
  294.  
  295.         The Sound Meter displays the current running amplitude of a
  296.         playing or recording sound (in mono), much like volume
  297.         meters on amplifiers or tape decks.
  298.  
  299.     In addition to this library, NeXT provides two sets of sound driver
  300.     and sound access functions.
  301.  
  302.     NXLiveVideoView
  303.  
  304.     The NXLiveVideoView class provides API for interactive display of
  305.     live video on the screen of a NeXTdimension Computer.  The
  306.     NXLiveVideoView class specification provides a complete discussion
  307.     of the NeXTdimension Computer's video capabilities and the API
  308.     provided by NXLiveVideoView.
  309.  
  310.     (Introduction from the NeXTSTEP General Reference, "Video"
  311.     reprinted with permission.  Copyright (c) 1993 NeXT Computer, Inc.
  312.     All rights reserved.)
  313.  
  314.     Applications
  315.  
  316.     There are several classes which solely exist to enable the
  317.     programmer to add functionality to specific existing NEXTSTEP
  318.     applications:
  319.  
  320.         IBPalette, IBInspector
  321.  
  322.         These classes allow developers to expand the functionality
  323.         of the Interface Builder application, creating their own
  324.         palettes of objects that can be dragged into an interface,
  325.         and inspectors to set and view the attributes of those
  326.         objects.
  327.  
  328.         Layout
  329.  
  330.         This class allows developers to add their own modules to the
  331.         Preferences application.
  332.  
  333.         WMInspector
  334.  
  335.         This class allows developers to add their own file contents
  336.         inspectors to the Workspace Manager application.
  337.  
  338.     Other
  339.  
  340.     Before NeXTSTEP 3.0, MusicKit was distributed as part of NEXTSTEP.
  341.     MusicKit is now maintained and made available by CCRMA (see the
  342.     entry under `Public Domain Kits').  Also until the advent of
  343.     NeXTSTEP 3.0, PhoneKit was part of NeXTSTEP.  PhoneKit classes
  344.     provided easy to ISDN connections.
  345.  
  346.     Contact
  347.  
  348.     NeXT Computer, Inc.
  349.     900 Chesapeake Drive
  350.     Redwood City, CA 94063
  351.     tel: +1 800 848 NEXT
  352.     fax: +1 415 780 2801
  353.     email: NeXTanswers@NeXT.COM
  354.  
  355. FSF
  356.  
  357.     Object
  358.  
  359.     Object is the root class which comes as part of the Objective-C
  360.     runtime library provided with the GNU CC compiler.
  361.  
  362.     GNU Objective-C Class Library
  363.  
  364.     The GNU Objective C Class Library (libobjects) is a library of
  365.     general-purpose, non-graphical Objective C objects written by
  366.     R. Andrew McCallum.  What `libg++' is to GNU's C++, `libobjects' is
  367.     to GNU's Objective C.
  368.  
  369.     The library features collection objects for maintaining groups of
  370.     objects and C types, streams for I/O to various destinations, coders
  371.     for formating objects and C types to byte streams, ports for network
  372.     packet transmission, distributed objects (remote object messaging),
  373.     pseudo-random number generators, and time handling facilities.
  374.  
  375.     * The heirarchy of collection objects are similar in spirit to
  376.       Smalltalk's collections.  A deep inheritance heirarchy provides
  377.       good uniformity of method names across different collection
  378.       classes.  All collections can hold simple C types (such as int's
  379.       and floats) as well as Objects.  The collection classes include
  380.       simple collections (Set, Bag), collections with contents
  381.       accessible by unordered keys (Dictionary, MappedCollector),
  382.       collections with ordered contents (Array, LinkedList, Stack,
  383.       Queue, Heap, BinaryTree, RBTree, SplayTree, GapArray).  There is
  384.       also a DelegatePool object that can forward messages it receives
  385.       to an arbitrary number of delegate objects.
  386.  
  387.     * Stream objects provide a consistent interface for reading and
  388.       writing bytes.  `StdioStream' objects work with files, file
  389.       descriptors, FILE pointers and pipes to/from
  390.       executables. `MemoryStream' objects work with memory buffers that
  391.       grow automatically as needed.  For all Stream objects there are
  392.       methods for writing/reading arbitrary n-length buffers,
  393.       newline-terminated lines, and printf-style strings.
  394.  
  395.     * Coders provide a formatted way of writing to Streams.  After a
  396.       coder is initialized with a stream, the coder can encode/decode
  397.       Objective C objects and C types in an architecture-independent
  398.       way.  The currently available concrete coder classes are
  399.       `BinaryCoder', for reading and writing a compact stream of
  400.       illegible bytes, and `TextCoder', for reading and writing
  401.       human-readable structured textual representation (which you can
  402.       also process with `perl', `awk', or whatever scripting language
  403.       you like).
  404.  
  405.       Coders and streams can be mixed and matched so that programmers can
  406.       choose the destination and the format separately.
  407.  
  408.     * The distributed object support classes are `Connection', `Proxy',
  409.       `ConnectedCoder', `Port' and `SocketPort'.  This version of the
  410.       distributed objects only works with sockets.  A Mach port back-end
  411.       should be on the way.
  412.  
  413.       [NOTE: The GNU distributed object facilities have the same
  414.       ease-of-use as NeXT's; be warned, however, that they are not
  415.       compatible with each other.  They have different class
  416.       heirarchies, different instance variables, different method names,
  417.       different implementation strategies and different network message
  418.       formats.  You cannot communicate with a NeXT NXConnection using a
  419.       GNU Connection.  NXConnection creates NXProxy objects for local
  420.       objects as well as remote objects; GNU Connection doesn't need and
  421.       doesn't create proxies for local objects.  NXProxy asks it's
  422.       remote target for the method encoding types and caches the
  423.       results; GNU Proxy gets the types directly from the local GNU
  424.       "typed selector" mechanism and has no need for querying the remote
  425.       target or caching encoding types.  The NXProxy for the remote root
  426.       object always has name 0 and, once set, you cannot change the root
  427.       object of a NXConnection; the GNU Proxy for the remote root object
  428.       has a target address value just like all other Proxy's, and you
  429.       can change the root object as many times as you like.  See the
  430.       "lacking-capabilities" list below for a partial list of things
  431.       that NXConnection can do that GNU Connection cannot.]
  432.  
  433.       Here is a partial list of what the current distributed objects
  434.       system can do:
  435.  
  436.           * It can pass and return all simple C types, including char*, float
  437.             and double, both by value and by reference.
  438.           * It can pass structures by value and by reference, return
  439.             structures by reference.  The structures can contain arrays.
  440.           * It obeys all the type qualifiers: oneway, in, out, inout, const.
  441.           * It can pass and return objects, either bycopy or with proxies.
  442.             An object encoded multiple times in a single message is properly
  443.             decoded on the other side.
  444.           * Proxies to remote objects are automatically created as they are
  445.             returned.  Proxies passed back where they came from are decoded
  446.             as the correct local object.
  447.           * It can wait for an incoming message and timeout after a
  448.             specified period.
  449.           * A server can handle multiple clients.
  450.           * The server will ask its delegate before making new connections.
  451.           * The server can make call-back requests of the client, and keep
  452.             it all straight even when the server has multiple clients.
  453.           * A client will automatically form a connection to another client
  454.             if an object from the other client is vended to it. (i.e. Always
  455.             make a direct connection rather than forwarding messages twice,
  456.             once into the server, from there out to the other client.)
  457.           * The server will clean up its connection to a client if the client
  458.             says goodbye (i.e. if the client connection is freed).
  459.           * When the connection is being freed it will send a invalidation
  460.             notification message to those objects that have registered for
  461.             such notification.
  462.           * Servers and clients can be on different machines of different
  463.             architectures; byte-order and all other architecture-dependent
  464.             nits are taken care of for you.  You can have SPARC, i386, m68k,
  465.             and MIPS machines all distributed-object'ing away together in
  466.             one big web of client-server connections!
  467.  
  468.       Here is a partial list of what the current distributed objects
  469.       system does *not* do:
  470.  
  471.           * Run multi-threaded.
  472.           * Detect port deaths (due to remote application crash, for example)
  473.             and do something graceful.
  474.           * Send exceptions in the server back to the client.
  475.           * Return structures by value.
  476.           * Use Mach ports, pass Mach ports, pass Mach virtual memory.
  477.           * Send messages more reliably than UDP.  It does detect reply
  478.             timeouts and message-out-of-order conditions, but it's reaction
  479.             is simply to abort.
  480.           * Claim to be thoroughly tested.
  481.  
  482.     Getting It, and Compiling It
  483.  
  484.         The library is available by anonymous ftp at URL:
  485.          ftp://prep.ai.mit.edu/pub/gnu/libobjects-0.1.0.tar.gz
  486.         Since `prep' is heavily loaded, you are
  487.         encouraged to use GNU mirror sites.
  488.  
  489.         The most recent (not necessarily tested) snapshots of the
  490.         library will be placed at `ftp://alpha.gnu.ai.mit.edu/gnu'.
  491.  
  492.         The library requires gcc 2.6.1 or higher.  The library does not
  493.         work with the NEXTSTEP 3.2 compiler because that version of
  494.         NeXT's cc cannot handle nested functions.  Until a later release
  495.         from NeXT, NEXTSTEP users will have to install gcc.  Also,
  496.         temporarily, the library does not work with the NeXT Objective C
  497.         runtime library.
  498.  
  499.         The library has been successfully compiled and tested with the
  500.         following configurations: mips-sgi-irix5.2 sparc-sun-sunos4.1.3
  501.         m68k-next-nextstep3.0.
  502.  
  503.         Some previous snapshots of the library worked with these
  504.         configurations, but they haven't been tested recently:
  505.         i386-unknown-linux i386-sun-solaris2.4 i386-unknown-sysv4.0
  506.         sparc-sun-solaris2.3.
  507.  
  508.         It is known not to work with: alpha-dec-osf.
  509.  
  510.     Now and Future
  511.  
  512.         The current version is 0.1; the low number indicates that the
  513.         library is still in flux.  A version coming soon will include
  514.         String objects and better allocation/dealocation conventions.
  515.  
  516.     GNUStep, NEXTSTEP and OpenStep
  517.  
  518.         The libobjects library already contains many of the "Common
  519.         Classes" in NeXTSTEP: List, HashTable, Storage, NXStringTable.
  520.         In the future it will also contain classes compatible with the
  521.         OpenStep Foundation Kit. Progress is already being made on this
  522.         front.
  523.  
  524.     Contact
  525.  
  526.         Andrew McCallum
  527.         mccallum@gnu.ai.mit.edu
  528.  
  529.     Contact
  530.  
  531.     Free Software Foundation
  532.     675 Massachusetts Avenue
  533.     Cambridge, MA  02139
  534.     +1-617-876-3296
  535.  
  536.  
  537. Third Party Kits
  538.  
  539.     Hot Technologies
  540.  
  541.     BARCODEKIT
  542.  
  543.         BarCodeKit is a comprehensive collection of object palettes for
  544.         creating international standard bar codes.  BarCodeKit allows
  545.         both developers and organizations to quickly add bar coding to
  546.         custom NEXTSTEP applications.  By combining the power of object
  547.         orientation and PostScript into a comprehensive library of bar
  548.         code symbologies, BarCodeKit represents the state of the art in
  549.         bar code technology.  Developers can seamlessly add bar coding to
  550.         an existing application in a matter of minutes by using any of
  551.         the 35 pretested and reusable objects in the BarCodeKit library
  552.         of palettes.  Previously, adding bar coding to an application
  553.         meant weeks or months of development, incompatibility with
  554.         different bar code readers and the use of costly proprietary bar
  555.         code printers.
  556.  
  557.         The BarCodeKit features a full range of bar code symbologies
  558.         including Code 3 of 9, Code 39 Extended, UPC-A, UPC-E, HRI, NDC,
  559.         EAN-8, EAN-13, JAN-8, JAN-13, ISBN, ISSN, SICI, SISAC, POSTNET,
  560.         ABC, FIM, BRM, Interleaved Two of Five, MSI, Codabar, Code 11,
  561.         Code 93, Code 128, Code 16K and Code 49.  It complies to
  562.         international, national, military and commercial bar coding
  563.         standards including EAN, JAN, CEN, ANSI, MIL, USS and HIBCC.
  564.         Furthermore, it provides developers with flexibility; bar codes
  565.         created using the kit can be scaled and rotated to fit a
  566.         specific area on a label or document and saved in EPS, EPSI (EPS
  567.         with interchange bitmap preview for non Display PostScript
  568.         computers), or TIFF formats.  BarCodeKit is an excellent
  569.         complement to NEXTSTEP's Application Kit and Database Kit It was
  570.         nominated for a Best of Breed Award by the editors of NeXTWORLD
  571.         Magazine.
  572.  
  573.     SERIALPORTKIT
  574.  
  575.         SerialPortKit is a fundamental class library and palette that
  576.         makes communication with serial peripherals easy to add into
  577.         your custom NEXTSTEP applications without any of the drawbacks
  578.         of other solutions.  You can use SerialPortKit to communicate
  579.         with a variety of serial peripherals such as modems, printers,
  580.         terminals, audio/video equipment, bar code readers, magnetic
  581.         stripe readers, controllers and data acquisition devices.  The
  582.         SerialPortKit contains a single SerialPort class which
  583.         interfaces to our SerialPortServer. Additional classes for
  584.         specific peripherals are available in our SerialPeripheralsKit
  585.         or through our consulting service.
  586.  
  587.         You can easily incorporate the SerialPortKit into your custom
  588.         applications due to its professionally designed and truly
  589.         object-oriented programming interface. The included Interface
  590.         Builder palette, source code examples, on-line indexed reference
  591.         manuals and tutorial further removes the tedious task of
  592.         traditional serial port programming.  Requires SerialPortServer
  593.         or SerialPortServer Lite which are available also from Hot
  594.         Technologies.
  595.  
  596.     Contact
  597.  
  598.         Hot Technologies
  599.         75 Cambridge Parkway, Suite E-504
  600.         Cambridge, MA 02142-1238 USA
  601.         tel: + 1 617 252 0088
  602.         fax: + 1 617 876 8901
  603.         email: info@hot.com (NeXTmail)
  604.  
  605.     Berkeley Productivity Group
  606.  
  607.     BPG BLOCKS
  608.  
  609.         BPG BLOCKS is an open extensible manufacturing framework which
  610.         supports a variety of applications including factory definition,
  611.         real-time tracking, real-time scheduling, short-term planning,
  612.         shift scheduling, production planning and capacity analysis.
  613.         BPG BLOCKS creates a virtual reality which represents the real
  614.         factory including the people, machines, material, processes,
  615.         their dynamics and interactions.  BPG BLOCKS is based on an easy
  616.         to understand design where every software object represents
  617.         either a real-world entity, or an important concept in the
  618.         manufacturing domain.  BPG BLOCKS' object-oriented manufacturing
  619.         model mirrors the real world, captures numerous manufacturing
  620.         details accurately, supports commonly used abstractions, and
  621.         allows decisions to be made based on aggregate information.  BPG
  622.         BLOCKS forms the basis for building custom applications which
  623.         meet the unique needs of your particular manufacturing
  624.         facility.
  625.  
  626.     Objective-C Views
  627.  
  628.         Objective-C Views is a user interface class library for
  629.         Microsoft Windows.
  630.  
  631.     Contact
  632.  
  633.         Christopher Lozinski
  634.             BPG
  635.             35032 Maidstone Court
  636.             Newark, CA 94560
  637.             tel: +1 510 795-6086
  638.             fax: +1 510 795-8077
  639.             email: lozinski@cup.portal.com
  640.  
  641.  
  642.     M. Onyschuk and Associates Inc.
  643.  
  644.     OBJECT:Math
  645.  
  646.         OBJECT:Math is a comprehensive set of tools and 23 Objective-C
  647.         classes used to add extensible math and string handling to your
  648.         custom and commercial applications:
  649.  
  650.         Compiler---The OBJECT:Math Compiler converts math and string
  651.         expressions (as might be typed into a spreadsheet cell,
  652.         plotting package, etc.) into Objective-C objects.
  653.  
  654.         Unbundler---The OBJECT:Math Unbundler object allows
  655.         end-users to extend their OBJECT:Math applications with
  656.         custom-built or third-party OBJECT:Math function bundles.
  657.  
  658.         User Interface Objects---OBJECT:Math comes complete with a
  659.         Lotus Improv style function picker, a variable editor, and
  660.         objects used to display OBJECT:Math expression trees and
  661.         other tree structures.
  662.  
  663.         As product sources are available the product may even be of
  664.         interest to non-NeXT Objective-C programmers.
  665.  
  666.     Contact
  667.  
  668.         Mark Onyschuk
  669.         M. Onyschuk and Associates Inc.
  670.         tel: +1 416 462 3954
  671.         email: ask-oa@plexus.guild.org
  672.  
  673.  
  674.     Stream Technologies Inc.
  675.  
  676.     Store
  677.  
  678.         Store is an Object Oriented User Level Virtual File System.
  679.         It is described extensively in `Store - Object Oriented Virtual
  680.         File System' by Timo Lehtinen, which is available by anonymous
  681.         FTP from ftp.sti.fi:/pub/sti/doc/papers/store.ps.
  682.  
  683.     Contact
  684.  
  685.         Stream Technologies Inc.
  686.         Valkj\"arventie 2
  687.         SF-02130 Espoo
  688.         Finland
  689.         tel: +358 0 4357 7348
  690.         fax: +358 0 4357 7340
  691.         email: info@sti.fi
  692.  
  693.  
  694. GPL Kits
  695.  
  696.    objcX
  697.  
  698.     An alpha version of an GNU Objective-C class library for X/Motif
  699.     Windows is available via anonymous ftp from
  700.  
  701.         ftp.slac.stanford.edu:pub/sources/objcX-0.82.tar.gz.
  702.  
  703.     For lack of a good witty name, the library is called objcX.
  704.  
  705.     The library requires the List class from the Collection Library for
  706.     GNU Objective-C (libcoll).
  707.  
  708.     Because we built this library to support porting NeXTSTEP
  709.     applications to X/Motif and because our GUI programming experience
  710.     has been with NeXTSTEP, this class library has a strongly
  711.     resemblance to NeXT's AppKit.  However, it is only a Objective-C
  712.     wrapper to Motif widgets and does not support Display PostScript,
  713.     rich text, pasteboard, drag and drop, services or many other things
  714.     associated with the NeXTSTEP environment that are not available
  715.     under X windows.
  716.  
  717.     From version 0.8, the nib translator is part of the objcX
  718.     distribution, as well as some examples of using objcX.
  719.  
  720.     These announcements are also a call for help.  The library and the
  721.     translator program could use much more work in two areas...
  722.  
  723.      - first the library could be flushed out with more features to
  724.        support larger applications
  725.  
  726.      - second, I would like to contribute the library to the GNU
  727.        project. But it is based on Motif widgets which is not free
  728.        software.  Thus, work is needed to replace Motif widgets with
  729.        widgets based on free software.
  730.  
  731.     To stay informed, join the mailing list gnustep-l@netcom.com by
  732.     sending a subscription email to gnustep-l-request@netcom.com.
  733.  
  734.     Contact
  735.  
  736.         Paul F. Kunz    Paul_Kunz@slac.stanford.edu (NeXT mail ok)
  737.         Stanford Linear Accelerator Center, Stanford University
  738.         Voice: (415) 926-2884   (NeXT) Fax: (415) 926-3587
  739.  
  740.  
  741.     Tcl/Objective-C Interface Library
  742.  
  743.     A library of Objective-C objects and support functions for
  744.     communication between Objective-C and Tcl/Tk.  From Tcl you can send
  745.     messages to Objective-C objects and get textual representations of
  746.     what's returned.  Thus it provides a way to interactively type
  747.     messages and see the results, all inside the rich structure of the
  748.     Tcl scripting language---almost an Objective-C interpreter.  The
  749.     library also provides an Objective-C object that will forward all of
  750.     its messages to the Tcl interpreter in textual format.
  751.  
  752.     The library does NOT provide:
  753.       * Handling arguments of non-atomic C types.
  754.       * Tk widgets based NeXTSTEP AppKit objects.
  755.       * The ability to create new Objective-C classes
  756.         or methods from Tcl.
  757.  
  758.     The library is available by anonymous ftp at
  759.         ftp.cs.rochester.edu:pub/libcoll/libtclobjc-1.0.tar.gz
  760.  
  761.     The library requires gcc (2.5.8 or higher) or NeXT's cc and tcl-7.3.
  762.     If you have tk-3.6, the library can be configured to use it.  If you
  763.     have libreadline, the library can be configured to use it.  Gcc and
  764.     libreadline are available at any of the GNU archive sites; tcl and
  765.     tk are available at ftp.cs.berkeley.edu.
  766.  
  767.     Contact
  768.  
  769.         R. Andrew McCallum            ARPA: mccallum@cs.rochester.edu
  770.         Computer Science Department   UUCP: uunet!cs.rochester.edu!mccallum
  771.         University of Rochester       VOX: (716) 275-2527
  772.         Rochester, NY  14627-0226     FEET: CSB  Rm. 625
  773.  
  774.     Tiggr's Objective-C Library
  775.  
  776.     Tiggr's Objective-C Library, or tobjc for short, is a basic
  777.     Objective-C library, whose functionality is based on Lisp.
  778.  
  779.     tobjc provides the following classes: LispObject, LispVector,
  780.     Cons, Double, Integer, String, AVLTree, THashTable, StringTable,
  781.     Trie, Lex, LexC and LexDFG.  Furthermore, tobjc includes a
  782.     program to extract documentation from Objective-C source files.
  783.  
  784.     All classes are a subclass of LispObject.  The LispObject class
  785.     provides its allocation routines and garbage collection (through
  786.     class abstraction) to its subclasses.
  787.  
  788.     tobjc was undergoing continuous development.  Test releases can
  789.     be obtained by anonymous FTP to `ftp.es.ele.tue.nl' as
  790.     `/pub/tiggr/tobjc-x.xx.tar.gz', where `x.xx' is some version
  791.     indication.  It is by no means finished yet, but certainly
  792.     useful (I have used it for developing a VHDL->ASCIS DFG compiler),
  793.     or at least interesting.
  794.  
  795.     I have been working on a new version which can handle messages sent
  796.     to nil by setting something called the `objc_nil_class'.  This means
  797.     that that particular class can receive messages while `self == nil',
  798.     i.e. it is possible to make `[nil listp]' return YES.  If you're
  799.     interested, mail me for a copy (it is not good enough to be released
  800.     through ftp yet).
  801.  
  802.     Contact
  803.  
  804.         Pieter J. `Tiggr' Schoenmakers
  805.         email: tiggr@es.ele.tue.nl
  806.         tel: +31 40 123484
  807.         fax: +31 40 128616
  808.  
  809.  
  810. Public Domain Kits
  811.  
  812.     Various authors
  813.  
  814.     MiscKit
  815.  
  816.         The MiscKit is a collection of over sixty objects which extend
  817.         the NEXTSTEP Objective-C development environment in various
  818.         ways.  It includes palletized subclasses of AppKit controls,
  819.         foundation objects, and a variety of useful special purpose
  820.         objects.
  821.  
  822.         Objects include strings, basic data structures, and kits for
  823.         building swapping views and inspectors.  There are also
  824.         frameworks for building Info menus and a generic document
  825.         handling architecture.  Palettized objects include a logarithmic
  826.         and circular sliders, a tri-state button, a combined Slider and
  827.         TextField, and a read-only NXColorWell.  There are other
  828.         objects, functions, and useful macros in the kit as well.
  829.  
  830.         Documentation, examples, tutorials, and complete source code are
  831.         distributed with the MiscKit.  The kit itself is the product of
  832.         over 25 Usenet personalities and is available free of cost for
  833.         use in any project.  The only restriction is that you
  834.         acknowledge use of the kit in your project.
  835.  
  836.         Misckit 1.2.6 can be obtained from the usual NEXTSTEP ftp sites:
  837.  
  838.         cs.orst.edu:/pub/next/sources/objects/MiscKit1.2.6.tar.gz
  839.         sonata.cc.purdue.edu:/pub/next/submissions/MiscKit1.2.6.tar.gz
  840.         ftp.et.byu.edu:/pub/next/misckit/MiscKit1.2.6.tar.gz
  841.             ftp.informatik.uni-muenchen.de:/pub/comp/platforms/next/
  842.                 Developer/objc/misckit/MiscKit1.2.6.s.tar.gz
  843.  
  844.     Contact
  845.  
  846.         For more information or to be placed on the MiscKit discussion
  847.         list, contact the kit administrator, Don Yacktman, by sending
  848.         e-mail to misckit-request@byu.edu.
  849.  
  850.     CCRMA
  851.  
  852.     MusicKit
  853.  
  854.         The Music Kit provides tools for designing music
  855.         applications. These tools address three topics: music
  856.         representation, performance, and synthesis (digital sound
  857.         generation and processing).  The Objective-C classes defined in
  858.         the Music Kit fall neatly into these three areas.
  859.  
  860.         The design goal of the Music Kit is to combine the interactive
  861.         gestural control of MIDI with the precise timbral control of
  862.         MUSIC 5-type systems in an extensible, object-oriented
  863.         environment. To this end, the Music Kit is capable of fully
  864.         representing MIDI.  The Music Kit accepts MIDI in and can send
  865.         MIDI out through the two serial ports at the back of the
  866.         computer. Nonetheless, the Music Kit isn't limited by the MIDI
  867.         specification; for example, its resolution of frequency and
  868.         amplitude is much finer than MIDI's highly quantized values.
  869.  
  870.         The Music Kit generates sounds by sending synthesis instructions
  871.         to the DSP.  The generality of the synthesis software far
  872.         surpasses that of commercial synthesizers.  While most
  873.         synthesizers employ only one type of synthesis-the Yamaha DX-7
  874.         uses only frequency modulation, for example-the Music Kit can
  875.         implement virtually any sound synthesis strategy.  And since the
  876.         synthesis engine (the DSP) and the control stream are brought
  877.         together in a single high-performance computer, the Music Kit
  878.         makes possible an unprecedented level of expressive control.
  879.         (from Documentation/MusicKit+DSP/General/SoundMusicDSP.rtfd)
  880.  
  881.         MusicKit used to be supplied by NeXT as part of NeXTSTEP (pre
  882.         3.0).  It is now maintained by CCRMA and available by FTP from
  883.         ccrma-ftp.stanford.edu.  There are two packages:
  884.  
  885.         pub/MusicKit_4.0.pkg.tar
  886.  
  887.             Class library, header files, documentation, programming
  888.             examples, and a suite of applications (size = 9MB).
  889.  
  890.         pub/MusicKitSource_4.0.pkg.tar
  891.             Source of the MusicKit class library (size = 7MB).
  892.  
  893.     Contact
  894.  
  895.         email: musickit@ccrma.stanford.edu
  896.  
  897.  
  898. ADMINISTRATIVIA
  899.  
  900.     The information in this file comes AS IS, WITHOUT ANY WARRANTY.  You may
  901.     use the information contained in this file or distribute this file, as
  902.     long as you do not modify it, make money out of it or take the credits.
  903.  
  904.     All trademarks appearing in this file are owned by their respective
  905.     owner.  To increase the information content in this file, any indication
  906.     to that effect is not present in the FAQ other than in this paragraph.
  907.  
  908. The first version of this FAQ was written by Bill Shirly, helped by the
  909. feedback and information given to him by a lot of people.  The current
  910. version is maintained by Tiggr, supported by feedback from Glen Diener,
  911. Christopher Lozinski, Sean Luke and a lot of other people.  Mail your bug
  912. reports, comments, suggestions and additions to tiggr@es.ele.tue.nl.
  913.  
  914. A World Wide Web hypertext version of this FAQ is maintained by Brian Harvey
  915. (theharv@csld.ucr.edu) and can be found at:
  916.     http://csld.ucr.edu/NeXTSTEP/objc_faq.html
  917.  
  918.